تفاوت Class Component و Functional Component در React.js چیست ؟
کسی میدونه تفاوت Functional Component و Class Component در react.Js دقیقا چی هست؟ لطفا اگر ممکنه با مثال توضیح بدید
شما ابتدا فایل package.json رو داخل پروژه React.js خودتون باز کنید و به ورژن react خودتون نگاه کنید.
"dependencies": {
"react": "^16.11.0",
"react-dom": "^16.11.0",
"react-scripts": "3.2.0"
},
در کدهای بالا ورژن react.js من 16.11.0 هست. اگر نسخه ری اکت شما از 16.8.0 کمتر باشه کلا از functional component ها نمیتونین استفاده کنید چون از نسخه 16.8.0 به بعد این قابلیت اضافه شده.
نکته بعدی در مورد تفاوت این 2 این هست که Class components در واقع کلاس های ES6 هستند و Functional Components توابع هستند.
Functional Component ها جدیدتر هستند و در نسخه های جدید به ری اکت اضافه شدن. در ادامه 2 مثال از Class component ها و functional component ها میزنم و توضیحاتی رو خدمتتون ارایه میدم :
class App extends Component{
render(){
return(
<div className="App">
<h1>Hello World</h1>
</div>
)
}
}
در قطعه کد بالا یک Class Component رو مثال زدیم. حالا کافیه این قطعه کد رو کپی کنید و در bable compiler پیست کنید تا تبدیل بشه به کدهای قابل فهم برای مرورگر. مشاهده می کنید که حجم بسیار زیادی از کد تولید میشه. برای این کار روی این لینک کلیک کنید و بعد کدها رو کپی کنید.
و اما ما میتونیم دقیقا همین قطعه کد رو با Functional Component ها بنویسیم
function App() {
return (
<div className="App">
<div>
<h1>Hello World !!!</h1>
</div>
</div>
);
دستور بالا functional Component هست. این دستورات بسیار ساده تر و قابل فهم تر هستن. و اگر همین دستورات رو توی کامپایلر bable کپی و پیست کنید مشاهده می کنید که حجم کد تولید شده برای قابل فهم شدن برای مرورگر بسیار کم هست.
مزایای functional component ها نسبت به class component
- تولید کدهای بسیار کمتر در functional component
- کدهای بسیار ساده تر و قابل فهم تر
- و اینکه functional component ها reusable تر هستند
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- انتخاب فریم ورک بهتر بین Angular، Vue و react js
- حذف فایلها و دستورات Css و JavaScript اضافی
- ایجاد سایت چند صفحه ای با react js
- جمع کردن (Collapse) منوی جانبی موقع لود فرم در پنل AdminLte
- دلیل خطای Identifier 'X' has already been declared در جی کویری چیست ؟
- جدا کردن سه رقم سه رقم اعداد در input با جاوااسکریپت
- محدود کردن تایپ عدد یا حروف با جاوا اسکریپت
- مقایسه بین فریم ورک های Angular و React.js و Vue js
- پیش نیازهای یادگیری React.Js چیست ؟
- نمایش پیغام گرافیکی با جی کویری